iT邦幫忙

2024 iThome 鐵人賽

DAY 12
1
Security

資安與開源:面對威脅探索系列 第 12

Day-12 開源軟體 AdGuard Home 架設

  • 分享至 

  • xImage
  •  

前言

今天我們將介紹如何在 Ubuntu 上使用 Docker 架設以及設定 AdGuard Hom
AdGuard Home 提供廣告攔截、隱私保護及惡意網站過濾等功能,透過簡單的設定,我們可以將這些功能應用於網路中,以提升網路安全性和使用者體驗

AdGuard Home 介面介紹

https://ithelp.ithome.com.tw/upload/images/20240921/20135755IEMTrg1zbN.png

AdGuard Home 功能介紹:

  1. DNS:管理和設定 DNS 伺服器,包括設定上游 DNS 伺服器及 DNS 加密
  2. DNS 封鎖清單:管理與更新封鎖清單,以阻止不必要的網域和服務
  3. 過濾規則:設定和管理過濾規則及惡意網站的過濾規則,以提升網路安全性和隱私保護
  4. 查詢記錄:顯示所有 DNS 查詢的詳細資訊,以便診斷問題並調整過濾規則

虛擬機環境

以下是我所使用的虛擬機環境設定,供大家參考:

  • 作業系統: Ubuntu 22.04
  • 記憶體: 至少 4GB RAM
  • 處理器: 至少雙核 CPU
  • 容器平台: Docker、Docker-compose

安裝步驟

  1. 安裝 Docker 和 Docker Compose
    在 Ubuntu 上執行以下命令來安裝 Docker 和 Docker Compose:
# 更新系統
sudo apt-get update
# 升級所有已安裝到最新版本
sudo apt-get upgrade
# 設定時區為台灣(Asia/Taipei)
sudo timedatectl set-timezone Asia/Taipei
# 安裝 Docker 
sudo apt-get install -y docker.io
# 安裝 Docker Compose 
sudo apt-get install -y docker-compose

安裝完成後,確認 Docker 服務正在運行:

# 啟動 Docker 服務
sudo systemctl start docker
# 設定 Docker 服務開機自動啟動
sudo systemctl enable docker
  1. 新增 Adguardhome 資料夾
mkdir adguardhome
cd adguardhome
  1. 建立 Docker-compose.yml 文件
    在 adguardhome 資料夾下建立 docker-compose.yml 文件,內容如下:

範例使用 DHCP 的 docker-compose.yml

version: '3.8'

services:
  adguardhome:
    image: adguard/adguardhome
    container_name: adguardhome
    network_mode: host
    restart: always
    volumes:
      - /opt/adguardhome/work:/opt/AdGuardHome/work
      - /opt/adguardhome/conf:/opt/AdGuardHome/conf

docker-compose.yml 說明

  • image: 使用的 Docker 映像檔
  • network_mode:使用主機網路,容器會直接使用主機的網路介面
  • restart: 重新啟動所有已停止及正在運行的服務,或僅重新啟動指定的服務
  • volumes: 主機上的文件掛載到容器中的對應位置

若要使用固定 IP,請參考以下設定
在不同的網路環境中,使用固定 IP 可能是必要或有利的,特別是在需要靜態 IP 的網路架構中
以下範例展示如何使用 docker run 直接啟動 AdGuard Home 容器,並設定必要的配置與 Port

docker run --name adguardhome\
    --restart unless-stopped\
    -v /my/own/workdir:/opt/adguardhome/work\
    -v /my/own/confdir:/opt/adguardhome/conf\
    -p 53:53/tcp -p 53:53/udp\
    -p 67:67/udp -p 68:68/udp\
    -p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\
    -p 853:853/tcp\
    -p 784:784/udp -p 853:853/udp -p 8853:8853/udp\
    -p 5443:5443/tcp -p 5443:5443/udp\
    -d adguard/adguardhome
  1. 啟動 AdGuard Home 容器
#使用 docker-compose 啟動
docker-compose up -d
  • 確認容器是否正確運行
    docker ps
    https://ithelp.ithome.com.tw/upload/images/20240921/20135755y0hSVBHDws.png
  1. 設定 AdGuard Home
    使用瀏覽器訪問 <你的伺服器IP>:3000,進入 AdGuard Home 設定界面
    https://ithelp.ithome.com.tw/upload/images/20240921/20135755hQOHlRnX72.png

  2. 設定管理員網路介面
    界面上可以自定義管理介面 Port(例如從 3000 更改為其他 Port),但 DNS 伺服器建議設定為 53Port
    https://ithelp.ithome.com.tw/upload/images/20240921/20135755EbhUc9SO6c.png

  3. 設定管理員帳密
    https://ithelp.ithome.com.tw/upload/images/20240921/20135755sBEy6oAFjn.png

  4. 確認 AdGuard Home DNS 伺服器正在監聽
    https://ithelp.ithome.com.tw/upload/images/20240921/20135755AZ6GtPUbhj.png

  5. 完成設定 AdGuard Home 即可成功運行!
    https://ithelp.ithome.com.tw/upload/images/20240921/20135755L4kklGc2XX.png

  6. 登入後會看到 AdGuard Home Dashboard
    https://ithelp.ithome.com.tw/upload/images/20240921/20135755LKk1sZNuaQ.png

問題排除

如果在設定過程中遇到問題,可以參考以下步驟進行排除:

  1. 無法解析外部 IP
    AdGuard Home 無法解析外部網IP
    https://ithelp.ithome.com.tw/upload/images/20240921/20135755TbhsokoJD5.png

解決方法:

  • 檢查環境設定:確認你的環境是使用 DHCP 還是固定 IP,不同的環境設定會有差異
  • 檢查容器狀態:docker ps 查看容器是否正常運行
  • 查看容器日誌:docker logs <容器ID> 查看是否有任何錯誤訊息
  • 檢查 Port 使用情況:sudo ss -tuln | grep ':53' 確認 AdGuard Home 是否在監聽 53Port
  1. Port 衝突
    當其他服務佔用了 AdGuard Home 需要 Port(例如 53、80 等)時,可能會導致 AdGuard Home 無法正常啟動
    https://ithelp.ithome.com.tw/upload/images/20240921/20135755IHjE6fETnn.png

解決方法:

  • 檢查 Port 使用情況:sudo ss -tuln | grep :80
  • 更改 Port 設定:如果 Port 被其他服務占用,可以更改 AdGuard Home 使用的 Port

結論

今天我們介紹了如何在 Ubuntu 上使用 Docker 快速部署 AdGuard Home 並進行基本設定
在深入了解 AdGuard Home 的詳細設定之前,下一篇我們將先介紹一下 DNS 的基本概念

參考資料


上一篇
Day-11 開源軟體 AdGuard Home
下一篇
Day 13 - 什麼是DNS?它對我們的影響是什麼?
系列文
資安與開源:面對威脅探索30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言